基于docker的分布式任务调度系统xxl |
您所在的位置:网站首页 › mysql 搭建分布式 docker › 基于docker的分布式任务调度系统xxl |
本文所使用的操作系统为: CentOS-7-x86_64-DVD-2009 一、安装MySQL(docker)xxl-job 依赖 mysql,所以必须要安装mysql才行! 访问以下链接:https://hub.docker.com/_/mysql/ 寻找自己需要的MySQL版本拉取即可 1.下载镜像 docker pull mysql这里未指定版本号,默认拉取的是最新MySQL镜像 2.导入zip包下载xxljob项目,查看releases版本 https://github.com/xuxueli/xxl-job/releases 最新版本是2.4.0,下载zip包 将zip包上传至/opt 目录下,然后进行解压 centos首先需要安装 unzip 命令 yum install unzip cd /opt unzip xxl-job-2.4.0.zip进入db目录,其中 tables_xxl_job.sql 就是我们要导入的sql文件 cd /opt/xxl-job-2.4.0/doc/db/ 3.启动容器运行mysql 镜像,指定密码为123456,映射目录/opt,指定默认编码为utf-8 注意:密码不要包含感叹号,否则会导致xxl-job启动失败 docker run -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /opt:/opt mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci如果输出: /usr/sbin/mysqld: ready for connections. Version: '8.0.27' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.则表示,启动mysql成功!可以看到版本是8.0.27 4.创建表进入docker,导入sql文件(其中:61d147358f52 为自己ID) docker exec -it 61d147358f52 /bin/bash mysql -u root -p123456创建数据库,用if NOT EXISTS判断 xxl_job 表是否存在,如果不存在,创建xxl_job表 。 CREATE database if NOT EXISTS `xxl_job` default character set utf8 collate utf8_general_ci;切换到xxl_job 数据库 use `xxl_job`; 5.导入sql source /opt/xxl-job-2.4.0/doc/db/tables_xxl_job.sql; 6.设置权限查看默认的授权列表 select Host,User,authentication_string from mysql.user;可以发现,默认已经将root用户设置了远程访问,也就是%的那条记录。但是密码和localhost的不一样。 因此,需要修改密码,并刷新权限 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges; 7.远程连接使用Navicat 新建一个mysql连接,点击连接测试,效果如下: 注意:这里必须能够远程访问,因为待会由 xxl-job来连接,必须测试通过,否则会导致xxl-job启动失败! 二、安装xxl-job 1.镜像下载如果直接下载镜像 docker pull xuxueli/xxl-job-admin执行会报错: Using default tag: latest Error response from daemon: manifest for xuxueli/xxl-job-admin:latest not found因为官方没有打 latest 的tag标签,所以会提示下载失败!必须写版本才可以! 在上面的内容中,我们已经访问了releases连接,最新版本是2.4.0 那么下载命令为: docker pull xuxueli/xxl-job-admin:2.4.0 2.启动容器注意:官方文档,提到了2个命令 docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin和 docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin这2个命令,执行之后,是无法访问8080页面的! 正确的命令为: docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.37.129:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=123456" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin xuxueli/xxl-job-admin:2.4.0上面的命令,就是在官方的基础上面改的!指定真实的mysql的ip地址,以及用户和密码。根据实际情况修改!!! 注意:jdbc的地址不能是127.0.0.1,因为官方的镜像没有mysql。官方的jdbc命令只是单纯的指定了数据库为xxl-job,并没有指定用户名和密码! 最后一个参数,是镜像地址。注意:必须带版本,否则无法启动 启动之后,输出如下: 最后一行,输出 init xxl-job admin success. 表示启动成功! 3.访问页面如果直接访问: http://192.168.37.129:8080是没有任何效果的!!! 真正的访问地址为: http://192.168.37.129:8080/xxl-job-admin效果如下: 账号:amdin 密码:123456 点击登录,效果如下: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |